OPS 10 - WindowPtrÇ©ÇÁÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃèÓïÒÇéÊìæÇ∑ÇÈDZÇΔÇÕïsâ¬î\Åi14-May-96Åj
Q: ÉRÅ[ÉãÉoÉbÉNä÷êîÇÃíÜÇ≈ÉhÉLÉÖÉÅÉìÉgÇÃÉtÉãÉpÉXñºÇéÊìæÇ∑ÇÈïKóvǙdžÇÈÇÃÇ≈Ç∑Ç™ÅAǪÇÍÇ…ä÷òAǵǃǢǪǧǻèÓïÒÇÕÅAǪÇÃÉhÉLÉÖÉÅÉìÉgÇï\é¶ÇµÇƒÇ¢ÇÈÉEÉBÉìÉhÉEÇÃWindowPtr ÇæÇØÇ»ÇÃÇ≈Ç∑ÅBÉtÉ@ÉCÉãñºÇÕÇÌǩǡǃǢÇÈÇÃÇ≈Ç∑Ç™ÅAÉfÉBÉåÉNÉgÉäIDÇ‚É{ÉäÉÖÅ[ÉÄÉäÉtÉ@ÉåÉìÉXî‘çÜÇ™ÇÌÇ©ÇÁǻǢÇÃÇ≈Ç∑ÅBWindowRecord Ç©ÇÁdirID ÇΔvRefNum ÇéÊìæÇ∑ÇÈï˚ñ@ÇÕǻǢÇ≈ǵÇÂǧǩÅH
A: écîOǻDZÇΔÇ…ÅAïKóvÇΔÇ»ÇÈÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃèÓïÒÇWindowRecord Ç©ÇÁéÊìæÇ∑ÇÈï˚ñ@ÇÕdžÇËÇ‹ÇπÇÒÅBWindowRecord ÇÕÅAÉqÉÖÅ[É}ÉìÉCÉìÉ^ÉtÉFÅ[ÉXÇé¿åªÇ∑ÇÈÇΩÇflÇÃç\ë¢âªÇ≥ÇÍÇΩèÓïÒÇÃÇ›Çä‹ÇÒÇ≈Ç®ÇËÅAǪÇÃíÜÇ…ÇÕÉtÉ@ÉCÉãñºÅié¿ç€Ç…ÇÕÉhÉLÉÖÉÅÉìÉgÇÃÉ^ÉCÉgÉãÅjLJä‹Ç‹ÇÍÇÈDZÇΔǙdžÇËÇ‹Ç∑ÅBÉEÉBÉìÉhÉEÇÕÉhÉLÉÖÉÅÉìÉgÇÃÉfÅ[É^ÇÉÜÅ[ÉUÇ…ï\é¶Ç∑ÇÈéËíiÇíÒãüÇ∑ÇÈLJÇÃÇ≈ÇÕdžÇËÇ‹Ç∑Ç™ÅAWindowRecord ÇÕÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃèÓïÒǙǫDZDždžÇÈÇ©ÇΔǢǧèÓïÒÇÕéùǡǃǢNjÇπÇÒÅBdžǻÇΩÇ™Ç∑Ç≈Ç…èqÇ◊ÇΩÇÊǧDžÅAÉtÉãÉpÉXñºÇéÊìæÇ∑ÇÈÇ…ÇÕÉfÉBÉåÉNÉgÉäIDÇΔÉ{ÉäÉÖÅ[ÉÄÉäÉtÉ@ÉåÉìÉXî‘çÜÇ™ïKóvÇ≈Ç∑ÅB
vRefNum ÇΔè„à ÉfÉBÉåÉNÉgÉäÇÃIDÅiparent dirID ÅjÇ™ÇÌÇ©ÇÍÇŒÅADTSÉTÉìÉvÉãÉRÅ[ÉhÇÃMoreFilesíÜÇÃÉtÉãÉpÉXä÷òAÇÃÉãÅ[É`ÉìÇÃÇ¢Ç∏ÇÍÇ©ÇégópÇ∑ÇÈDZÇΔÇ™Ç≈Ç´ÇÈÇ≈ǵÇÂǧÅB
LJǵÉtÉ@ÉCÉãÇÃÉäÉtÉ@ÉåÉìÉXî‘çÜÇ™ÇÌÇ©ÇÈÇÃÇ≈džÇÍÇŒÅAPBGetFCBInfo() ÇÉRÅ[ÉãǵǃvRefNum ÇΔdirID ÇéÊìæÇ∑ÇÈDZÇΔÇ™â¬î\Ç≈džÇËÅAÇ≥ÇÁÇ…MoreFilesÇégópÇ∑ÇÈDZÇΔÇ…ÇÊÇËÉtÉãÉpÉXñºÇéÊìæÇ≈Ç´Ç‹Ç∑ÅBPBGetFCBInfo() ÇÕÉIÅ[ÉvÉìÇ≥ÇÍǃǢÇÈÉtÉ@ÉCÉãÅiFile Control BlockÇÃÉLÉÖÅ[DždžÇÈÉtÉ@ÉCÉãÅjÇÃèÓïÒÇï‘ǵNjÇ∑ÅBPBGetFCBInfo() ÇÕÅAà»â∫ÇÃÇÊǧDžégǧDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
pascal OSErr GetFileLocation(short refNum,
short *vRefNum,
long *dirID,
StringPtr fileName)
{
FCBPBRec pb;
OSErr error;
pb.ioNamePtr = fileName;
pb.ioVRefNum = 0;
pb.ioRefNum = refNum;
pb.ioFCBIndx = 0;
error = PBGetFCBInfoSync(&pb);
*vRefNum = pb.ioFCBVRefNum;
*dirID = pb.ioFCBParID;
return (error);
}
à»â∫ÇÃéëóøÇ‡Ç≤éQèΔÇ≠ÇæÇ≥Ç¢ÅB
* File Control BlockÇÃÇÊÇËè⁄ç◊Ç»èÓïÒDžǬǢǃÇÕÅAInside Macintosh: FilesÇÃ2-81Ç©ÇÁ2-83ÇéQèΔÅB
* PBGetFCBInfoÇÊÇËè⁄ç◊Ç»èÓïÒDžǬǢǃÇÕÅAInside Macintosh: FilesÇÃ2-237Ç©ÇÁ2-238ÇéQèΔÅB
[ Technical Q&A's : Operating System Services : OS Utilities : OPS10 ]
|